<?php

namespace Agp\CoreBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * Agp\EstoqueBundle\Entity\MovimentoCaixa
 *
 * @ORM\Table(name="movimento_caixa")
 * @ORM\Entity(repositoryClass="Agp\CoreBundle\Repository\MovimentoCaixaRepository")
 */
class MovimentoCaixa
{
    /**
     * @var integer $codMovimentoCaixa
     *
     * @ORM\Column(name="cod_movimento_caixa", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $codMovimentoCaixa;
    
    /**
     * @var integer $codEmpresa
     *
     * @ORM\ManyToOne(targetEntity="Agp\CoreBundle\Entity\Empresa", fetch="LAZY")
     * @ORM\JoinColumn(name="cod_empresa", referencedColumnName="cod_empresa", onDelete="restrict", nullable=false)
     */
    protected $empresa;

    /**
     * @var integer $codTerminal
     *
     * @ORM\ManyToOne(targetEntity="Agp\CoreBundle\Entity\Terminal", fetch="LAZY")
     * @ORM\JoinColumn(name="cod_terminal", referencedColumnName="cod_terminal", onDelete="restrict", nullable=false)
     */
    protected $terminal;

    /**
     * @var integer $atendente
     *
     * @ORM\ManyToOne(targetEntity="Agp\CoreBundle\Entity\Atendente", fetch="LAZY")
     * @ORM\JoinColumn(name="cod_atendente", referencedColumnName="cod_atendente", onDelete="restrict", nullable=false)
     */
    protected $atendente;
    
    /**
     * @var integer $codEvento
     *
     * @ORM\ManyToOne(targetEntity="Agp\CoreBundle\Entity\Evento", fetch="LAZY")
     * @ORM\JoinColumn(name="cod_evento", referencedColumnName="cod_evento", onDelete="restrict", nullable=true)
     */
    protected $evento;

    /**
     * @var float $turno
     *
     * @ORM\Column(name="turno", type="integer", nullable=true)
     */
    protected $turno;

    /**
     * @var \DateTime $dtMovimento
     *
     * @ORM\Column(name="dt_movimento", type="datetime", nullable=false)
     */
    protected $dtMovimento;
    
    /**
     * @ORM\Column(name="vlr_movimento", type="float", nullable=false)
     * @var float
     */
    protected $vlrMovimento;
    
    const EM_RETIRADA = 'Retirada';
    const EM_SUPRIMENTO = 'Suprimento';
    /**
     * @ORM\Column(name="especie_movimento", type="string", length=45, nullable=false)
     * @var string
     */
    protected $especieMovimento;

    public function __construct() {
        $this->dtMovimento = new \DateTime;
    }
    
    /**
     * @var float $codVendaTerminal
     *
     * @ORM\Column(name="cod_venda_terminal", type="integer", nullable=true)
     */
    protected $codVendaTerminal;

    /**
     * Get codMovimentoCaixa
     *
     * @return integer 
     */
    public function getCodMovimentoCaixa()
    {
        return $this->codMovimentoCaixa;
    }
    
    /**
     * Set empresa
     *
     * @param integer $empresa
     * @return MovimentoCaixa
     */
    public function setEmpresa($empresa)
    {
        $this->empresa = $empresa;
    
        return $this;
    }

    /**
     * Get empresa
     *
     * @return integer 
     */
    public function getEmpresa()
    {
        return $this->empresa;
    }

    /**
     * Set terminal
     *
     * @param integer $terminal
     * @return MovimentoCaixa
     */
    public function setTerminal($terminal)
    {
        $this->terminal = $terminal;
    
        return $this;
    }

    /**
     * Get terminal
     *
     * @return integer 
     */
    public function getTerminal()
    {
        return $this->terminal;
    }

    /**
     * Set atendente
     *
     * @param integer $atendente
     * @return MovimentoCaixa
     */
    public function setAtendente($atendente)
    {
        $this->atendente = $atendente;
    
        return $this;
    }

    /**
     * Get atendente
     *
     * @return integer 
     */
    public function getAtendente()
    {
        return $this->atendente;
    }

    public function getTurno() {
        return $this->turno;
    }

    public function setTurno($turno) {
        $this->turno = $turno;
    }

    public function getDtMovimento() {
        return $this->dtMovimento;
    }

    public function setDtMovimento($dtMovimento) {
        $this->dtMovimento = $dtMovimento;
    }

    public function getVlrMovimento() {
        return $this->vlrMovimento;
    }

    public function setVlrMovimento($vlrMovimento) {
        $this->vlrMovimento = $vlrMovimento;
    }
    
    public function getEspecieMovimento() {
        return $this->especieMovimento;
    }

    public function setEspecieMovimento($especieMovimento) {
        $this->especieMovimento = $especieMovimento;
    }

    public static function getEspeciesList(){
        return array (self::EM_RETIRADA => self::EM_RETIRADA,
                      self::EM_SUPRIMENTO => self::EM_SUPRIMENTO);
    } 
    
    public function getEvento() {
        return $this->evento;
    }

    public function setEvento($evento) {
        $this->evento = $evento;
    }
    
    public function getCodVendaTerminal() {
        return $this->codVendaTerminal;
    }

    public function setCodVendaTerminal($codVendaTerminal) {
        $this->codVendaTerminal = $codVendaTerminal;
    }




}